$OpenBSD: patch-compface_file_c,v 1.1 2000/06/04 23:08:34 espie Exp $
--- compface/file.c.orig	Wed Jun 19 08:29:13 1991
+++ compface/file.c	Mon Jun  5 00:48:26 2000
@@ -15,6 +15,8 @@
 
 #include "compface.h"
 
+int xbitmap=0;
+
 void
 BigRead(fbuf)
 register char *fbuf;
@@ -127,10 +129,19 @@ char *fbuf;
 {
 	register char *s, *t;
 	register int i, bits, digits, words;
+	extern int xbitmap;
+	int digsperword = DIGSPERWORD;
+	int wordsperline = WORDSPERLINE;
 
 	s = F;
 	t = fbuf;
 	bits = digits = words = i = 0;
+	if (xbitmap) {
+		sprintf(t,"#define noname_width 48\n#define noname_height 48\nstatic char noname_bits[] = {\n ");
+		while (*t) t++;
+		digsperword = 2;
+		wordsperline = 15;
+	}
 	while (s < F + PIXELS)
 	{
 		if ((bits == 0) && (digits == 0))
@@ -138,25 +149,43 @@ char *fbuf;
 			*(t++) = '0';
 			*(t++) = 'x';
 		}
-		if (*(s++))
-			i = i * 2 + 1;
-		else
-			i *= 2;
+		if (xbitmap) {
+			if (*(s++))
+				i = (i >> 1) | 0x8;
+			else
+				i >>= 1;
+		}
+		else {
+			if (*(s++))
+				i = i * 2 + 1;
+			else
+				i *= 2;
+		}
 		if (++bits == BITSPERDIG)
 		{
-			*(t++) = *(i + HexDigits);
+			if (xbitmap) {
+				t++;
+				t[-(digits & 1) * 2] = *(i + HexDigits);
+			}
+			else *(t++) = *(i + HexDigits);
 			bits = i = 0;
-			if (++digits == DIGSPERWORD)
+			if (++digits == digsperword)
 			{
+				if (xbitmap && (s >= F + PIXELS)) break;
 				*(t++) = ',';
 				digits = 0;
-				if (++words == WORDSPERLINE)
+				if (++words == wordsperline)
 				{
 					*(t++) = '\n';
+					if (xbitmap) *(t++) = ' ';
 					words = 0;
 				}
 			}
 		}
+	}
+	if (xbitmap) {
+		sprintf(t, "}\n");
+		while (*t) t++;
 	}
 	*(t++) = '\0';
 }
